Technical Field
This application relates generally to distributed data processing systems and to the delivery of content to users over computer networks.
Brief Description of the Related Art
Websites are the front-end to online businesses, software-as-a-service platforms, enterprise software, web applications, media and entertainment, and other platforms, products, and services. The speed at which web pages load is of critical importance to content providers. If a page takes too long to load, end-users will have a negative experience, and may abandon the site, product, and/or service. Moreover, end-users' tolerance for delays in web page loading is decreasing.
A variety of technologies have been developed to improve website speed and reliability, including distributed computer systems known as content delivery networks (CDNs) which are typically operated and managed by service provider on behalf of participating content providers, who designate content to be delivered to end-users over the CDN infrastructure. The CDN typically comprises a set of content servers distributed around the Internet, along with command and control, logging, security and other infrastructure to facilitate and enhance the delivery of content.
The speed at which a web page loads is affected by the time it takes to retrieve content, as well as the time it takes to render the content in a browser or other application executing on the client device. A web page is composed of many different components—such as embedded images, style sheets, multimedia, AJAX, and other objects—that are referenced in a markup language document describing the overall page presentation characteristics, such as an HTML document. Typically, a client application retrieves each of these components and then, per the presentation instructions in the markup language document (and dynamically fired AJAX instructions), creates the page. In a sense, the markup language and components represent a program that the client application executes to paint a web page on the screen for a user. Retrieving the components takes time and is dependent on such factors as client-server distances and server load. Executing the web page “program” to render the page takes time and is dependent on such factors as client device CPU speed, available memory, interface speed and other processing constraints. As page functionality and complexity increases, along with the popularity of processing-constrained mobile devices, the execution of the “program” becomes particularly problematic.
The teachings hereof address the need to improve web page loading time, user experience, and related needs. The teachings hereof present technical changes and improvements to the function, operation, and performance of individual computers and distributed computing systems, such as content delivery networks, to achieve such ends. The teachings also provide other benefits and improvements that will become apparent in view of this disclosure.